In recent years, web browsers have become more capable of handling complex webpages. Whether the browsers utilize extensions such as players like Adobe Flash player, and virtual machines like Java®, or have access to system level resources through HTML5 and Web 2.0 technologies, browsers are now capable of interpreting and rendering complex webpages. Some such webpages interpret and render complex offerings such as games displaying virtual 3-D, similar to those that were only available through specialized gaming consoles not long ago.
In support of such enhanced web, content several technologies have developed including new coding languages, and application programming interfaces, which make it easier to develop such enhanced web content. However, new features are added at a rapid pace, and not all Internet browsers support all features.
Web developers that want to take advantage of the best technology available need to know what a browser supports so that their webpages render in the best way possible given a browser's capabilities. Web developers have developed a strategy wherein when a webpage is initialized by a web browser, the web page can request basic access to the desired technologies and if the technologies are supported the browser can report back no errors. However, just because a page tests for the support of certain technologies often doesn't mean that the page is configured to take advantage of the technologies. Use of some of these technologies may expose users to potential security vulnerabilities or require significant power drains, and as such loading these resources merely for a test is undesirable.